package other; /**
 * Created by lyyn on 2022/7/21.
 */
/**
 * 给定一个含有 n 个正整数的数组和一个正整数 target 。
 找出该数组中满足其和 ≥ target 的长度最小的
 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ，
 并返回其长度。如果不存在符合条件的子数组，返回 0 。
 示例 1：
 输入：target = 7, nums = [2,3,1,2,4,3]
 输出：2
 解释：子数组 [4,3] 是该条件下的长度最小的子数组。
 */

public class ShuZuPF_977 {
    public static void main(String[] args) {
        int[] nums = new int[]{-7,-3,2,3,11};
        Solution_2 solution_2 = new Solution_2();
        int[] result = solution_2.sortedSquares(nums);
        for (int i = 0; i < nums.length; i++) {
            System.out.println(result[i]);
        }
    }
}
class Solution_2 {
    public int[] sortedSquares(int[] nums) {
        int left = 0;
        int right = nums.length - 1;
        int n = nums.length;
        int[] result = new int[n];
        while (left <= right){
            n--;
            if(Math.pow(nums[left],2) < Math.pow(nums[right],2)){
                result[n] = (int)Math.pow(nums[right],2);
                right--;
            }else{
                result[n] = (int)Math.pow(nums[left],2);
                left++;
            }

        }
        return result;
    }
}